package com.qijian.flowable.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.qijian.common.annotation.Excel;
import com.qijian.common.core.domain.BaseEntity;

/**
 * 流程记录对象 t_flowable_record
 *
 * @author qijian
 * @date 2021-09-17
 */
@EqualsAndHashCode(callSuper = true)
@Data
@ToString
@TableName("t_flowable_record")
public class FlowableRecord extends BaseEntity{
    private static final long serialVersionUID = 1L;

    /** 流程实例ID */
    @TableId
    @ApiModelProperty(value = "流程实例ID")
    private String processInstanceId;

    /** 流程定义ID */
    @Excel(name = "流程定义ID")
    @ApiModelProperty(value = "流程定义ID")
    private String processDefintionId;

    @JsonSerialize(using= ToStringSerializer.class)
    @ApiModelProperty(value = "来源ID")
    private Long sourceId;

    /** 表单 */
    @Excel(name = "表单")
    @ApiModelProperty(value = "表单")
    private String businessKey;

    /** 表单值 */
    @Excel(name = "表单值")
    @ApiModelProperty(value = "表单值")
    private String businessValues;

    /** 流程名称 */
    @Excel(name = "流程名称")
    @ApiModelProperty(value = "流程名称")
    private String recordName;

    /** 流程类型 */
    @Excel(name = "流程类型")
    @ApiModelProperty(value = "流程类型")
    private String recordType;

    /** 模型类型 */
    @Excel(name = "模型类型")
    @ApiModelProperty(value = "模型类型")
    private String category;

    /** 所属用户 */
    @Excel(name = "所属用户")
    @JsonSerialize(using= ToStringSerializer.class)
    @ApiModelProperty(value = "所属用户")
    private Long userId;

    /** 当前执行人 */
    @Excel(name = "当前执行人")
    @JsonSerialize(using= ToStringSerializer.class)
    @ApiModelProperty(value = "当前执行人")
    private Long executorId;

    /** 当前执行步骤 */
    @Excel(name = "当前执行步骤")
    @ApiModelProperty(value = "当前执行步骤")
    private String processContent;

    @Excel(name = "开工令")
    @ApiModelProperty(value = "开工令")
    private String projectNos;

    /** 状态 */
    @Excel(name = "状态")
    @ApiModelProperty(value = "状态")
    private String status;

    @TableField(exist = false)
    private String nickName;

    @TableField(exist = false)
    private String deptName;

    @TableField(exist = false)
    private String operator;
}
